package com.hanzidong.service;

import java.util.List;

import com.github.pagehelper.PageInfo;
import com.hanzidong.bean.Article;
import com.hanzidong.bean.Collect;
import com.hanzidong.bean.Comments;
import com.hanzidong.bean.Link;
import com.hanzidong.bean.User;

public interface ArticleService {

	boolean add(Article article);

	/**
	 * 查询用户所有的文章
	 * @param pageNum
	 * @param pageSize
	 * @param user
	 * @return
	 */
	PageInfo<Article> listByUser(Integer pageNum, Integer pageSize, User user);

	Article getDetailById(Integer id);

	/**
	 * 根据条件查询文章
	 * @param pageNum
	 * @param pageSize
	 * @param article
	 * @return
	 */
	PageInfo<Article> list(Integer pageNum, Integer pageSize, Article article);

	/**
	 * 修改文章状态
	 * @param article
	 * @return
	 */
	boolean update(Article article);

	/**
	 * 点击量排行榜的查询
	 * @param pageNum
	 * @param pageSize
	 * @param article
	 * @return
	 */
	PageInfo<Article> listByHits(Integer pageNum, Integer pageSize, Article article);

	/**
	 * 获取文章评论
	 * @param articleId
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	PageInfo<Comments> getCommentsByArticleId(Integer articleId, Integer pageNum, Integer pageSize);

	/**
	 * 为文章添加评论
	 * @param comments
	 * @return
	 */
	boolean addComments(Comments comments);

	/**
	 * 添加收藏
	 * @param collect
	 * @return
	 */
	boolean addCollect(Collect collect);

	/**
	 * 取消收藏
	 * @param collect
	 * @return
	 */
	boolean delCollect(Collect collect);

	/**
	 * 查看我的收藏
	 * @param pageNum
	 * @param pageSize
	 * @param user
	 * @return
	 */
	PageInfo<Collect> getCollect(Integer pageNum, Integer pageSize, User user);

	/**
	 * 根据文章和用户查询是否收藏
	 * @param collect
	 * @return
	 */
	Collect getCollectByArticleId(Collect collect);

	/**
	 * 友情链接
	 * @return
	 */
	List<Link> getLinks();
}
